let number = [3, 4, 5, 6, 7, 8, 9, 10, "J", "Q", "K", "A", 2];
let flower = ["♠️", "♥️", "♣️", "♦️"]; // 排序方式：黑-红-梅-方
/*
    发牌器
    54 张 大小王
    3人 17张/人 3底牌
    打乱
    点数升序3 4 5.... 黑桃3 方块3 当点数相同，按花色排：黑-红-梅-方
*/
function init() {
    // 生成54个牌
    let arr = [];
    for (let f = 0; f < flower.length; f++) {
        for (let n = 0; n < number.length; n++) {
            arr.push({
                str: flower[f] + number[n],
                number: n,
                flower: f
            });
        }
    }
    arr.push({
        str: "小王",
        number: 53,
    }, {
        str: "大王",
        number: 54,
    });
    // console.log(arr, arr.length);

    // 54 乱 不重复
    let s = new Set();
    while (s.size < 54) {
        s.add(random(53)); // 0-53
    }
    let randomIndex = [...s];
    // console.log(randomIndex);

    // 乱序的 54 张牌的数组
    arr = randomIndex.map(item => arr[item]);
    // console.log(888, arr);

    // 分发
    let player1 = arr.slice(0, 17);
    let player2 = arr.slice(17, 34);
    let player3 = arr.slice(34, 51);
    let def = arr.slice(51);
    // console.log("乱序的player1的牌", player1);

    // console.log("player1", player1, player1.length);
    return [player1, player2, player3, def];
}
let [player1, player2, player3, def] = init();

// 排序 
function sort(arr) {
    // arr.sort((a, b) => a - b);
    arr.sort((a, b) => { // a b 就是牌对象
        if (a.number == b.number) {
            return a.flower - b.flower;
        } else {
            return a.number - b.number;
        }
    });
    console.log("排好序", arr);
}
sort(player1); // 对 player1 的排序
sort(player2); // 对 player2 的排序
sort(player3); // 对 player3 的排序
sort(def); // 对 def 的排序

// 随机数
function random(min, max) {
    if (!max) {
        [max, min] = [min, 0];
    }
    if (min > max) {
        [max, min] = [min, max];
    }
    return parseInt(Math.random() * (max + 1 - min) + min);
}